import axios from "axios";
import { message } from "ant-design-vue";
import store from "@/store";
import router from "@/router";

const baseURL = process.env.NODE_ENV === "production" ? "" : "/api";

const server = axios.create({
  baseURL: baseURL,
});

// 添加请求拦截器
server.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    config.cancelToken = new axios.CancelToken((cancel) => {
      store.commit("PUSH_CANCEL", {
        cancelToken: cancel,
      });
    });
    // header添加token
    // let token = router.currentRoute.query.session_token || store.state.token;
    // if (token) {
    //   config["headers"]["sessiontoken"] = token;
    // }
    return config;
  },
  (error) => {
    // 对响应错误做点什么
    if (axios.isCancel(error)) {
      return new Promise(() => {});
    } else {
      return Promise.reject(error);
    }
  }
);

// 添加响应拦截器
server.interceptors.response.use(
  (response) => {
    // 对响应数据做点什么
    // const status = response.status;
    // if (status < 200 || status > 300) {
    //   // 请求失败
    //   message.error(response.data?.message || "请求失败");
    //   return Promise.reject(response.data);
    // } else if (response.data.code == 1) {
    //   // 返回数据
      return response.data;
    // } else if (response.data.code == 401) {
    //   // 登录失效
    //   store.commit("SET_TOKEN", "");
    //   store.commit("SET_POWER", []);
    //   store.commit("SET_USERINFO", {});
    //   message.error(response.data?.message || "请重新登录");
    //   setTimeout(() => {
    //     router.replace("/login");
    //   }, 1500);
    //   return Promise.reject(response.data);
    // } else {
    //   message.error(response.data?.message || "请求失败");
    //   return response.data;
    // }
  },
  (error) => {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

export default server;
